package controlador;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

import objetos.AlumnoDAO;

/**
 * 
 * @author Juanvi y Oscar
 *
 */
public class ModeloTablaAlumnosFrameNuevoAlumno extends AbstractTableModel{
	
	private  String[] valoresColumnas = {"Id_Alumno","Nombre", "Primer Apellido", 
			"Segundo Apellido","DNI","Direccion","Telefono","Fecha Nacimiento","Email"};//Nombres de las columnas
	private  Object[][]valoresFilas;//Valores que tendran cada fila
	
	/**
	 * Constructor
	 */

	public ModeloTablaAlumnosFrameNuevoAlumno(ArrayList<AlumnoDAO> a) {
		valoresFilas = new Object[a.size()][valoresColumnas.length]; //Inicializacion de valores filas
		int i = 0;//Contador de la fila
		for (AlumnoDAO alumnoDAO : a) {
			valoresFilas[i][0] = alumnoDAO.getNumExpediente();//Asigna el id del alumno
			valoresFilas[i][1] = alumnoDAO.getNombre();//Asigna el nombre del alumno
			valoresFilas[i][2] = alumnoDAO.getApellido1();//Asigna el Primer Apellido del alumno
			valoresFilas[i][3] = alumnoDAO.getApellido2();//Asigna el Segundo Apellido del alumno
			valoresFilas[i][4] = alumnoDAO.getNif();//Asigna el DNI del alumno
			valoresFilas[i][5] = alumnoDAO.getDireccion();//Asigna la Direccion del alumno
			valoresFilas[i][6] = alumnoDAO.getTelefono();//Asigna el telefono del alumno
			valoresFilas[i][7] = alumnoDAO.getFechaNac();//Asigna la fecha de nacimiento del alumno
			valoresFilas[i][8] = alumnoDAO.getEmail();//Asigna el email del alumno
			i++;//Incrementa la fila
		}
		
	}
	
	@Override
	public int getColumnCount() {
		return valoresColumnas.length;
	}

	@Override
	public int getRowCount() {
		return valoresFilas.length;
	}

	@Override
	public Object getValueAt(int fila, int col) {
		return valoresFilas[fila][col];
	}
	
	@Override
	public String getColumnName(int col) {
		return  valoresColumnas[col].toString();
	}
	
	@Override
	public void setValueAt(Object valor, int fila, int columna) {
		valoresFilas[fila][columna] = valor;
		fireTableCellUpdated(fila, columna);
	}
	
	@Override
	public boolean isCellEditable(int fila, int columna) {
		return false;
	}
	
	@Override
	public Class<?> getColumnClass(int columnIndex) {
		return getValueAt(0,columnIndex).getClass();
	}
	
}
